#pragma once

#include "pSystem.h"
#include <map>
#include <string>
#include <typeinfo>

class pSystemManager
{
private:
	static std::map<unsigned long, pSystem*>::iterator itPS;
	
	pSystemManager(void);
	~pSystemManager(void);
	static pSystemManager * pSystemManagerInstance;

public:
	static std::map<unsigned long, pSystem*> pSystems_loaded;
	static pSystemManager * getPSManager(){
		if(pSystemManagerInstance == NULL) pSystemManagerInstance = new pSystemManager();
		return pSystemManagerInstance;
	}
	static void addPSystem(pSystem* _ps);
	static bool isAlive(pSystem* _ps);
	static bool removePS(pSystem* _ps);
	static void recalc();
	static void render();
};
